home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / prg_casm / snip9611.zip / ROMAN.C < prev    next >
C/C++ Source or Header  |  1996-11-24  |  2KB  |  100 lines

  1. /* +++Date last modified: 02-Nov-1995 */
  2.  
  3. /*
  4.  *
  5.  *        ROMAN.C  -  Converts integers to Roman numerals
  6.  *
  7.  *             Written by:  Jim Walsh
  8.  *
  9.  *             Compiler  :  Microsoft QuickC v2.5
  10.  *
  11.  *        This Program Is Released To The Public Domain
  12.  *
  13.  */
  14.  
  15. #include <stdio.h>
  16. #include <stdlib.h>
  17. #include <string.h>
  18.  
  19. int main( int argc, char *argv[] )
  20. {
  21.     int value, dvalue;
  22.     char roman[80];
  23.     roman[0] = '\0';
  24.     if( argc == 2 )
  25.         value = atoi( argv[1] );
  26.     else
  27.     {
  28.         printf( "\nEnter an integer value: " );
  29.         scanf( "%d", &value );
  30.     }
  31.     dvalue = value;
  32.     while( value >= 1000 )
  33.     {
  34.         strcat( roman, "M" );
  35.         value -= 1000;
  36.     }
  37.     if( value >= 900 )
  38.     {
  39.         strcat( roman, "CM" );
  40.         value -= 900;
  41.     }
  42.     while( value >= 500 )
  43.     {
  44.         strcat( roman, "D" );
  45.         value -= 500;
  46.     }
  47.     if( value >= 400 )
  48.     {
  49.         strcat( roman, "CD" );
  50.         value -= 400;
  51.     }
  52.     while( value >= 100 )
  53.     {
  54.         strcat( roman, "C" );
  55.         value -= 100;
  56.     }
  57.     if( value >= 90 )
  58.     {
  59.         strcat( roman, "XC" );
  60.         value -= 90;
  61.     }
  62.     while( value >= 50 )
  63.     {
  64.         strcat( roman, "L" );
  65.         value -= 50;
  66.     }
  67.     if( value >= 40 )
  68.     {
  69.         strcat( roman, "XL" );
  70.         value -= 40;
  71.     }
  72.     while( value >= 10 )
  73.     {
  74.         strcat( roman, "X" );
  75.         value -= 10;
  76.     }
  77.     if( value >= 9 )
  78.     {
  79.         strcat( roman, "IX" );
  80.         value -= 9;
  81.     }
  82.     while( value >= 5 )
  83.     {
  84.         strcat( roman, "V" );
  85.         value -= 5;
  86.     }
  87.     if( value >= 4 )
  88.     {
  89.         strcat( roman, "IV" );
  90.         value -= 4;
  91.     }
  92.     while( value > 0 )
  93.     {
  94.         strcat( roman, "I" );
  95.         value--;
  96.     }
  97.     printf( "\n%d = %s\n", dvalue, roman );
  98.     return(0);
  99. }
  100.